/*
 * ClassDetails.h
 *
 *  Created on: Jan 1, 2009
 *      Author: sez
 */

#ifndef CLASSDETAILS_H_
#define CLASSDETAILS_H_

#include <QList>

#include "DndData.h"
#include "TitledData.h"
#include "Power.h"
#include "Trait.h"

class CharacterRecord;

class ClassDetails : public TitledData
{
public:
    ClassDetails(const QString &title = QString());
    ClassDetails(const ClassDetails &);
    virtual ~ClassDetails();
    QString description() const;
    void saveToXml() const;
    void loadFromXml();
    void fill(CharacterRecord *);
    ClassDetails &operator=(const ClassDetails &);

    DndData::ClassName className;
    QString extClassName;
    DndData::PartyRole role;
    Power::PowerSource powerSource;
    QStringList armourProficiencies;
    QStringList weaponProficiencies;
    QStringList implement;
    QList<Trait> defenceBonus;
    int hitPointsBase;
    int hitPointsPerLevel;
    int healingSurgesPerDay;
    QList<DndData::SkillTypes> fixedSkills;
    QList<DndData::SkillTypes> classSkills;
    QStringList buildOptions;
    QList<Trait> classFeatures;
};

#endif /* CLASSDETAILS_H_ */
